﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using COM.PreAlarm.Model;
using COM.PreAlarm.BLL;
using System.Data;
using COM.PreAlarm.Model;
using COM.PreAlarm.BLL;
using System.Web.UI.WebControls;
using System.Text;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using Wuqi.Webdiyer;
using System.Collections;
using System.Web.UI.HtmlControls;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
using COM.Rights.BLL;
using System.Data;


public partial class Pages_GPRS_SendMore : ZMPageList<Equip_Installed, Equip_InstalledInfo>
{
    #region 重写方法


    protected override void OnLoad()
    {

        if (!IsPostBack)
        {
            //fromData.Text = DateTime.Now.ToString("yyyy-MM-dd");
            //toData.Text = DateTime.Now.ToString("yyyy-MM-dd");

            //初始化市
            MdlistInfo _MdlistInfo = new MdlistInfo();
            _MdlistInfo.TranType = "GetCityByUser";
            _MdlistInfo.UID = ZASession.Account;

            DataTable dt = Mdlist.GetDataTableByModel(_MdlistInfo);
            if (dt != null)
            {
                if (dt.Rows.Count == 1)
                {
                    //一条记录默认选中
                    ZABinder.FillList(StringHelper.FormatObjToString(dt.Rows[0]["Name"]), ddlCity, false, dt);
                    //填充区
                    _MdlistInfo.TranType = "GetDistrictByUser";
                    _MdlistInfo.UID = ZASession.Account;
                    _MdlistInfo.Type = ddlCity.SelectedValue;
                    DataTable dtDistrict = Mdlist.GetDataTableByModel(_MdlistInfo);
                    //一条记录默认选中
                    if (dtDistrict != null && dtDistrict.Rows.Count == 1)
                    {
                        ZABinder.FillList(StringHelper.FormatObjToString(dtDistrict.Rows[0]["name"]), ddlDistrict, false, dtDistrict);
                    }
                    else
                    {
                        ZABinder.FillList(string.Empty, ddlDistrict, true, dtDistrict);
                    }

                }
                else
                {
                    ZABinder.FillList(string.Empty, ddlCity, true, dt);
                    ddlDistrict.Items.Add(new ListItem("--请选择--", ""));
                }

            }
            else
            {
                //没有市的权限，显示所管控的所有区
                ZABinder.FillList(string.Empty, ddlCity, true, dt);
                ddlDistrict.Items.Add(new ListItem("--请选择--", ""));
            }
        }


        base.OnLoad();
    }

    
    protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)
    {

        if (ddlCity.SelectedValue != string.Empty)
        {
            //初始化区
            MdlistInfo _MdlistInfo = new MdlistInfo();
            _MdlistInfo.TranType = "GetDistrictByUser";
            _MdlistInfo.UID = ZASession.Account;
            _MdlistInfo.Type = ddlCity.SelectedValue;
            ZABinder.FillList(string.Empty, ddlDistrict, true, Mdlist.GetDataTableByModel(_MdlistInfo));
        }

    }

    protected override int PageSize
    {
        get
        {
            //return base.PageSize;
            return 10000;
        }


    }

   
    protected override string DefaultFilter
    {
        get
        {
            //取所管理的所有区
            if (ddlDistrict.SelectedValue != string.Empty)
            {
                return string.Format("Equip_County IN ( '{0}' )", ddlDistrict.SelectedValue);
            }
            else
            {
                MdlistInfo _MdlistInfo = new MdlistInfo();
                _MdlistInfo.TranType = "GetDistrictByUser";
                _MdlistInfo.UID = ZASession.Account;
                _MdlistInfo.Type = ddlCity.SelectedValue;
                //_MdlistInfo.Type = StringHelper.FormatObjToString(Request.Form["ctl00$ctl00$ctl00$contentPlaceHolder$contentPlaceHolder$contentPlaceHolderToolBar$ddlCity"]);
                DataTable dt = Mdlist.GetDataTableByModel(_MdlistInfo);
                StringBuilder sb = new StringBuilder();

                foreach (DataRow dr in dt.Rows)
                {
                    sb.Append(",'");
                    sb.Append(StringHelper.FormatObjToString(dr["name"]));
                    sb.Append("'");
                }
                if (sb.Length > 0)
                {
                    return string.Format("Equip_County IN ( {0} )", sb.ToString().Substring(1));
                }
                else
                {
                    return string.Empty;
                }
            }

        }
    }

    protected override void OnGridDataBind()
    {
        InitFilter();

        Equip_Installed bll = new Equip_Installed();

        BaseMainPager.PageSize = PageSize;

        int? recordCount = RecordCount;
        List<Equip_InstalledInfo> infos = null;

        int? iPageIndex = BaseMainPager.CurrentPageIndex;
        int? iPageSize = BaseMainPager.PageSize;

        List<DBParameter> dbs = new List<DBParameter>();
        foreach (DBParameter db in DBParameters)
        {
            dbs.Add(db);
        }
        //infos = bll.GetList(iPageIndex, iPageSize, ref recordCount, Columns, Filter, GetSort(), dbs);
        DataTable dt = bll.GetDataTable(iPageIndex, iPageSize, ref recordCount, Columns, Filter, GetSort(), dbs);


        BaseMainGrid.DataSource = infos;
        BaseMainGrid.DataBind();

        BaseMainPager.RecordCount = recordCount.Value;
        RecordCount = recordCount;

        bll.Dispose();
        //base.OnGridDataBind();
        /*
        BdOrder _BdOrder = new BdOrder();
        List<DBParameter> _listDBParameter = new List<DBParameter>();
        _listDBParameter.Add(new DBParameter("@TranType", "OnLineTotal"));
        _listDBParameter.Add(new DBParameter("@OrderDateBegin", fromData.Text));
        _listDBParameter.Add(new DBParameter("@OrderDateEnd", toData.Text));
        _listDBParameter.Add(new DBParameter("@UID", ZASession.Account));
        _listDBParameter.Add(new DBParameter("@City", ddlCity.SelectedValue));
        _listDBParameter.Add(new DBParameter("@District", ddlDistrict.SelectedValue));
        _listDBParameter.Add(new DBParameter("@Equip_NO", Equip_No.Text));
        _listDBParameter.Add(new DBParameter("@AvgTotalBegin", StringHelper.FormatObjStringToint(txtAvgBegin.Text)));
        _listDBParameter.Add(new DBParameter("@AvgTotalEnd", StringHelper.FormatObjStringToint(txtAvgEnd.Text)));

        IDataReader sdr = _BdOrder.ExecuteReader("[dbo].[report]", _listDBParameter, System.Data.CommandType.StoredProcedure);


        DataTable dt = new DataTable();
        dt.Load(sdr);
        dt.Columns.Add("CurrentStatus");
        string TargetDate = DateTime.Now.Hour.ToString().Length < 2 ? '0' + DateTime.Now.Hour.ToString() : DateTime.Now.Hour.ToString();
        foreach (DataRow dr in dt.Rows)
        {
            dr["CurrentStatus"] = StringHelper.FormatObjStringToint(dr["online_" + TargetDate]) == 1 ? "在线" : "离线";
        }



        BaseMainPager.RecordCount = dt.Rows.Count;
        gvInfos.DataSource = ZPager.TablePage(dt, BaseMainPager.PageSize, BaseMainPager.CurrentPageIndex);

        gvInfos.DataBind();
         * */
    }
    protected override void InitBtnDelete()
    {
        //base.InitBtnDelete();
    }

    protected override void InitBtnAdd()
    {
        //base.InitBtnAdd();
    }

    //protected override INI

    protected string GetTextByValue(string Value, string type)
    {
        return Mdlist.GetTextByValue(Value, type);
    }



    protected void btnSend_Click(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(txtMessage.Text.Trim()))
        {
            List<string> checkedList = GetCheckedList();
            if (checkedList != null && checkedList.Count > 0)
            {
                Msg_SentInfo msi = new Msg_SentInfo();
                msi.Msg_No = string.Format("HNXXFS_{0}", DateTime.Now.ToString("yyyyMMddHHmmss"));
                msi.Msg_Content =  ddlTimes.SelectedValue +  txtMessage.Text;
                Msg_Sent msg = new Msg_Sent();
                msg.Add(msi, "*");
                Equip_MsgSent ems = new COM.PreAlarm.BLL.Equip_MsgSent();
                foreach (string s in checkedList)
                {
                    Equip_MsgSentInfo emsi = new COM.PreAlarm.Model.Equip_MsgSentInfo();
                    emsi.SetIsNew(true);
                    emsi.Equip_No = s; 
                    emsi.Msg_No = msi.Msg_No;
                    emsi.Msg_SendTime = StringHelper.FormatStringToDate(txtSendDate.Value);
                    emsi.Msg_RecStatus = 0;
                    ems.Add(emsi, "*");

                }
                ClientScript.RegisterStartupScript(GetType(), "Success", "<script>alert('发送成功！');</script>");
                //ems.Add(
            }
            else {
                ClientScript.RegisterStartupScript(GetType(), "Error", "<script>alert('请选择要发送的设备！');</script>");
            }
        }
        else {
            ClientScript.RegisterStartupScript(GetType(), "Error", "<script>alert('请录入要发送的信息！');</script>");
            txtMessage.Focus();
        }

    }

    #endregion 	重写方法
}